package com.quarter.db;

import java.sql.ResultSet;
import java.sql.Statement;

/**
 *class explain: Operations on database
 */
public class Data {

    private DBConnect con = new DBConnect();
    private Statement stmt;
    private ResultSet rs;

    /**
     *input parameter:  DataBase table name
     *output parameter: count = -2 --> Exception
     *		    count = -1 --> Error
     *			count = 0  --> Nothing
     *			count > 0  --> Right
     */
    public int getRowCount(String tableName) {
        int intCount = 0;
        try {
            stmt = con.getStmtread();
            rs = stmt.executeQuery("SELECT COUNT(*) FROM " + tableName);
            if (rs.next()) {
                intCount = rs.getInt(1);
            } else {
                intCount = -1;
            }
        } catch (Exception e) {
            intCount = -2;
            System.err.println(e.getMessage());
            e.printStackTrace();
        } finally {
        	con.close();
            return intCount;
        }
    }

    /**
     *input parameter:	insert SQL sentence
     *output parameter:	count = -2 --> Exception
     *			count = 0 --> nothing
     *			count > 1 --> right
     */
    public int insert(String sql) {
        int count = 0;
        stmt = con.getStmt();
        try {
            count = stmt.executeUpdate(sql);
        } catch (Exception e) {
            count = -2;
            System.err.println(e.getMessage());
            e.printStackTrace();
        } finally {
            con.close();
            return count;
        }
    }

    /**
     *input parameter:	update SQL
     *output parameter:	count = -2 --> Exception
     *			count = 0 --> nothing
     *			count > 1 --> right
     */
    public int update(String sql) {
        int count = 0;
        stmt = con.getStmt();
        try {
            count = stmt.executeUpdate(sql);
        } catch (Exception e) {
            count = -2;
            System.err.println(e.getMessage());
            e.printStackTrace();
        } finally {
            con.close();
            return count;
        }
    }

    /**
     *input parameter:	delete SQL sentence
     *output parameter:	count = -2 --> Exception
     *			count = 0 --> nothing
     *			count > 1 --> right
     */
    public int delete(String sql) {
        int count = 0;
        stmt = con.getStmt();
        try {
            count = stmt.executeUpdate(sql);
        } catch (Exception e) {
            count = -2;
            System.err.println(e.getMessage());
            e.printStackTrace();
        } finally {
            con.close();
            return count;
        }
    }
}